package com.wgy.day33其他增强流.缓冲流.字节缓冲流;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Created by pc on 2020/12/5 20:40
 * Description: LearningJava
 */
/*
java.io.BufferedOutputStream extends OutputStream
BufferedOutputStream:字节缓冲输出流

继承来自父类的共性成员方法:
  void close():关闭此输出流并释放与该流关联的所有系统资源
  void flush():刷新从输出流并强制任何缓冲的输出字节被写出
  void write(byte[] b) :将b.length字节从指定的字节数组中写入此输出流
  void write(byte[] b,int off,int len):将指定的字节数组写入len字节,从偏移量off开始输出到此输出流
  abstract void write (int b):将指定的字节输出流

构造方法:
  BufferedOutputStream(OutputStream out ):创建一个新的缓冲输出流,以将数据写入指定的底层输出流
  BufferedOutputStream(OutputStream out,int size )创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流
     参数:
         OutputStream out:字节输出流
                          我们可以传递FileOutputStream,缓冲流会给FileOutputStream增加一个缓冲区,提供FileOutputStream对象效率
         int size:指定缓冲流内部缓冲区的大小,不指定默认

使用步骤:
     1.创建FileOutputStream对象,构造方法中绑定要输出的目的地
     2.创建BufferedOutputStream对象,构造方法中传递 FileOutputStream对象,提高FileOutputStream对象效率
     3.使用BufferedOutputStream对象中的方法write,把数据写入到内存缓冲区中
     4.使用BufferedOutputStream对象中的方法flush,把内存缓冲区中的数据刷新到文件中
     5.释放资源(会先调用flush方法刷新数据,第4步可以省略)
 */
public class Demo01BufferedOutputStream {
    public static void main(String[] args) throws IOException {
        //1.创建FileOutputStream对象,构造方法中绑定要输出的目的地
        FileOutputStream fos=new FileOutputStream("D:\\小云\\abc\\b\\b.txt");
        // 2.创建BufferedOutputStream对象,构造方法中传递 FileOutputStream对象,提高FileOutputStream对象效率
        BufferedOutputStream bos=new BufferedOutputStream(fos);
        //3.使用BufferedOutputStream对象中的方法write,把数据写入到内存缓冲区中
        bos.write("我把数据写入到内存缓冲区中".getBytes());
        // 4.使用BufferedOutputStream对象中的方法flush,把内存缓冲区中的数据刷新到文件中
        bos.flush();

       // 5.释放资源(会先调用flush方法刷新数据,第4步可以省略)
        bos.close();

    }
}
